home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / PROGRAMM / PASCAL / 0391B.ZIP / JWINDOW.ARC / JWINDEMO.PAS < prev    next >
Pascal/Delphi Source File  |  1985-09-15  |  5KB  |  163 lines

  1.    { Program Window Demo
  2.  
  3.      This program demonstrates the use of the procedures in jerwind.inc
  4.      to do windows on IBM PC's and compatibles, using Turbo Pascal.
  5.  
  6.      Requires a color card  or compatible card as long as the screen
  7.      memory is a b8000H.  If not the program will need to be modified.
  8.      Certain procedures or functions may require Turbo Ver.3. to compile
  9.      correctly..
  10.  
  11.      Ver. 1.0   ---- BY J. Lamphere }
  12.  
  13.    { Start of main test program }
  14.    {$u-}
  15.    {$I Jerwind.inc}     {include the window program}
  16.    {$I dir.inc}         {include the directory procedures}
  17.  
  18.     Type
  19.       Regpack  = Record
  20.                  AX,BX,CX,DX,BP,SI,DI,DS,ES,FLAGS : Integer;
  21.                  End;
  22.  
  23.       Anything = String[60];
  24.       Time_is  = String[8];
  25.       Date_is  = String[10];
  26.  
  27.     Var
  28.       Ch   :char;
  29.       Regs :Regpack;
  30.  
  31.     {  Procedure to write messages saves a little in programing }
  32.  
  33.     Procedure Msg(X,Y:integer;  say :Anything);
  34.      { Write the string say at coords x,y }
  35.      Begin
  36.        GotoXY (x,y);
  37.        Write( Say );
  38.      end;      { end of message procedure }
  39.  
  40.     { Function to return the date }
  41.  
  42.        Function Date : Date_is;
  43.  
  44.      Var
  45.         Month, Day         : String[2];
  46.         Year               : String[4];
  47.  
  48.      Begin
  49.  
  50.        Regs.AX := $2A Shl  8;      {Shift it left so its in AH}
  51.        Msdos(Regs);                {Call the function}
  52.        Str(Regs.CX,Year);          {Convert to a string}
  53.        Str(Regs.DX Mod 256, Day); {Convert to string}
  54.        Str(Regs.DX Shr 8, Month); {shift right to reg DH and convert}
  55.  
  56.        Date := Month + '-' + Day + '-' + Year;
  57.  
  58.        End;   { end of get date procedure }
  59.  
  60.  
  61.        Function Time : Time_is;
  62.  
  63.        Var
  64.           Hour, Min, Sec     : String[2];
  65.  
  66.       Begin
  67.        Regs.AX := $2C Shl 8;       {Shift left so its put in AH}
  68.        Msdos(Regs);                {Call the function}
  69.        Str(Regs.CX Shr 8, Hour);      {Get the hour from CH}
  70.        Str(Regs.CX Mod 256, Min);
  71.        Str(Regs.DX Shr 8, Sec);       {Get the seconds form DH}
  72.  
  73.        Time := Hour + ':' + Min + ':' + Sec
  74.  
  75.        End;   { end get time and date }
  76.  
  77.        { main program starts here }
  78.  
  79.     Begin
  80.          Clrscr;
  81.          Msg (10,2,'Are you using a color moniter  Y/N ? ');
  82.          repeat
  83.            Read (Kbd,Ch)
  84.          until Upcase(ch) in ['Y','N',#27];
  85.          if Upcase (Ch) in ['N',#27] then
  86.           begin
  87.             Writeln ('Sorry presently set for a color card.');
  88.             Halt;
  89.           end;
  90.  
  91.       Textcolor (2);
  92.       Msg (10,5,'             Small Window Demo program ');
  93.       Msg (10,7,'Ver 1.1  By J. Lamphere   5/85');
  94.       Msg (10,9,'This program will demonstrate one of the many ways to');
  95.       Msg (10,10,'implement windows on IBM pc''s and compatibles using');
  96.       Msg (10,11,'Turbo Pascal.  None the the Demo routines are anything');
  97.       Msg (10,12,'special but should allow you to get a feel for some of');
  98.       Msg (10,13,'things Turbo Pascal is capable of..................');
  99.       Msg (10,15,'  You may use any or all of these routines in your');
  100.       Msg (10,16,'Programs provided they are for your own use or for');
  101.       Msg (10,17,'programs to be put in public domain.');
  102.       Msg (25,19,'Copyright 1985');
  103.       Textcolor (3);
  104.       Msg (10,22,'Press any key when ready');
  105.        Repeat
  106.         Until Keypressed;
  107.  
  108.       {  open the first window then restore it }
  109.          Open_Window (1);
  110.          textcolor(8);
  111.          Dir;
  112.          Write(#10#13#10,'          Press any Key');
  113.          textcolor(7);
  114.          Repeat
  115.                until keypressed;
  116.  
  117.        { Now open window 2 }
  118.  
  119.          Open_window (2);
  120.          Clrscr;
  121.          GotoXY(5,5);
  122.          Write ('The Time is ',Time,' and the Date is ',Date);
  123.          GotoXY(5,7);
  124.          Writeln(' We''ll look at window 3 after you press a key');
  125.          repeat
  126.              until keypressed;
  127.         { now try # 3}
  128.          Open_Window (3);
  129.           Msg (5,2,' A little window is good for warning messages');
  130.           Msg (5,3,' incase a particular function is not allowed');
  131.           Textcolor (8);
  132.           Msg (5,6,' Warning file may be corrupted if you continue');
  133.           Textcolor (7);
  134.           Msg (8,9,'Press any key for the final window');
  135.          Repeat
  136.             until Keypressed;
  137.            { ----------------- start of window 4 demo --------------}
  138.  
  139.          Open_Window (4);  Clrscr;
  140.  
  141.            Msg (5,2,' This is last window in the demonstration ');
  142.            Msg (5,3,' hopefully this will help you in managing');
  143.            Msg (5,4,' windows for your programs.................');
  144.            Msg (5,8,' When you press a key we will restore the');
  145.            Msg (5,9,' opening screen then exit the program.');
  146.            Textcolor (5); Msg (12,12,'TAKE CARE Jerry Lamphere');
  147.            Repeat
  148.             Until Keypressed;
  149.          Close_Window;
  150.          Textcolor(3);
  151.          Write ('  all done ');
  152.          GotoXY(1,24)
  153.       End.
  154.  
  155.  
  156.     {   This program and the procedures used were developed on a
  157.         Heath HS-151 PC.
  158.  
  159.         HS-151 is a trademark of the Heath/Zenith corp.
  160.         Turbo Pascal is a trademark of Borland International, Inc.
  161.         IBM is a registered trademark of International Business Machines
  162.                                                                          }
  163.